#include "Config.h"

#include <unistd.h> // getopt
#include <stdlib.h> // atoi

Config::Config()
    : port_(9006)
    , logWriteMode_(0)
    , trigMode_(0)
    , listenTrigMode_(0)
    , connTrigMode_(0)
    , optLinger_(0)
    , sqlNums_(8)
    , threadNums_(8)
    , closeLog_(0)
    , actorModel_(0) {}

void Config::parseArgs(int argc, char *argv[])
{
    int opt;
    const char *str = "p:l:m:o:s:t:c:a:";
    while((opt = getopt(argc, argv, str)) != -1) {
        switch(opt) {
            case 'p': {
                port_ = atoi(optarg);
                break;
            } case 'l': {
                logWriteMode_ = atoi(optarg);
                break;
            } case 'm': {
                trigMode_ = atoi(optarg);
                break;
            } case 'o': {
                optLinger_ = atoi(optarg);
                break;
            } case 's': {
                sqlNums_ = atoi(optarg);
                break;
            } case 't': {
                threadNums_ = atoi(optarg);
                break;
            } case 'c': {
                closeLog_ = atoi(optarg);
                break;
            } case 'a': {
                actorModel_ = atoi(optarg);
                break;
            } default: {
                break;
            }
        }
    }
}

// #include <iostream>

// int main(int argc, char* argv[])
// {
//     Config config;
//     config.parseArgs(argc, argv);
//     std::cout << "port: " << config.port() <<
//         ", threadNums: " << config.threadNums() << std::endl;
//     return 0;
// }
